/*
Copyright [2020] [https://www.xiaonuo.vip]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Snowy采用APACHE LICENSE 2.0开源协议，您在使用过程中，需要注意以下几点：

1.请不要删除和修改根目录下的LICENSE文件。
2.请不要删除和修改Snowy源码头部的版权声明。
3.请保留源码和相关描述文件的项目出处，作者声明等。
4.分发源码时候，请注明软件出处 https://gitee.com/xiaonuobase/snowy
5.在修改包名，模块名称，项目代码等时，请注明软件出处 https://gitee.com/xiaonuobase/snowy
6.若您的项目无法满足以上几点，可申请商业授权，获取Snowy商业授权许可，请在官网购买授权，地址为 https://www.xiaonuo.vip
 */
package vip.xiaonuo.facedoor.modular.memberuser.param;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import vip.xiaonuo.core.pojo.base.param.BaseParam;
import vip.xiaonuo.facedoor.modular.memberfacestaris.entity.MemberFaceStaris;
import vip.xiaonuo.facedoor.modular.memberfacestaris.param.MemberFaceStarisParam;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 内部人员参数类
 *
 * @author 胡鹏达
 * @date 2022-07-09 15:48:24
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "内部人员参数")
public class MemberUserParam extends BaseParam {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空，请检查id参数", groups = {edit.class, delete.class, detail.class})
    @ApiModelProperty(value = "id", required = false)
    private Long id;

    /**
     * 创建时间
     */
    private String createDate;

    /**
     * 更新时间
     */
    private String updateDate;

    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 逻辑删除标记（0：显示；1：隐藏）
     */
    @ApiModelProperty(value = "删除时del=1 其余可不填", required = false)
    private String delFlag;

    /**
     * 用户名
     */
    @NotBlank(message = "用户名不能为空，请检查name参数", groups = {add.class, edit.class})
    @ApiModelProperty(value = "删除时del=1 其余可不填", required = false)
    private String name;

    /**
     * 密码
     */
    private String password;

    /**
     * 性别
     */
    private Integer sex;

    /**
     * 手机号
     */
    private String tel;

    /**
     * 类型  0：员工，1：学生   2：教职工
     */
    private String type;

    /**
     * 审核状态  1:审核通过，0：待审核
     */
    private String status;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 全名
     */
    private String fullName;

    /**
     * 人脸比对照片
     */
    private String photo;

    /**
     * 工号
     */
    @NotBlank(message = "工号不能为空，请检查jobNum参数", groups = {add.class, edit.class})
    private String jobNum;

    /**
     * 部门ID
     */
    private String officeId;

    /**
     * 公司ID
     */
    private String companyId;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * IC卡号
     */
    private String icCard;

    /**
     * 人脸特征值
     */
    private String properValue;

    /**
     * 公司
     */
    private String companyName;

    /**
     * 考勤规则id
     */
    private String attendanceId;

    /**
     * 默认值为0，修改后值为1
     */
    private Integer statusFlag;

    /**
     * 指静脉
     */
    private String fingerVein;

    /**
     * 韦根卡号
     */
    private String wiegandNum;

    /**
     * 人员体温
     */
    private String temperature;

    /**
     * 班级
     */
    private String classno;

    /**
     * 监护人姓名
     */
    private String parentsname;

    /**
     * 监护人电话
     */
    private String parentsphone;

    /**
     *
     */
    private String lastCurrentDate;

    /**
     * 学生身高
     */
    private Integer height;

    /**
     * 体重  单位:kg
     */
    private Integer weight;

    /**
     *
     */
    private String qtUpdateDate;

    /**
     * 卡片读取状态1、已经读取完毕、2读取中
     */
    private String readCardStatus;

    /**
     * 建筑id
     */
    private String buildingId;

    /**
     * 建筑名称
     */
    private String buildingName;

    /**
     * 设备同步状态
     */
    private String deviceSyncStatus;

    /**
     * 梯控人员角色 0 为普通人员1  为职员
     */
    private String deviceRole;

    /**
     * 直达居住楼层（如果人员角色为职员，没有此项）
     */
    private String liveFloor;

    /**
     * 手选楼层数量（最多选择  20 个楼层，如果角色为职员，此值为设为  255表示全楼层）
     */
    private String handFloor;

    /**
     * 有效期截止时间（forever 表示永久有效）
     */
    private String term;

    /**
     * 组织id
     */
    private Long orgId;

    /**
     * 0:内部员工； 1 :外来访客； 2：黑名单；3 管理员
     */
    private Integer personType;

    private Long posId;

    private Boolean miniAppAdmin;
    private Integer wgFacilityCode;

    private Boolean checkMember;

    private Long miniAppMemberId;

    private String otherSysFiled;

    private List<String> orgIds;

    private Boolean miniapp;

    private List<MemberFaceStaris> memberFaceStarises;
}
